Vykresleni textu fontem o rozmeru znaku x,y

Otázka od: Martin Radvansky

2. 7. 2004 15:40

Dobry den,

potreboval bych vykreslit na Canvas text fontem, ktery neni definovan
jeho size ale primo velikosti tj vyska a sirka. Potrebuji proste
vykreslit text, ktery bude mit mnou definovanou vysku a sirku. Problem je, ze
pokazde pri zmene vysky se mi automaticky zmeni i sirka coz nechci.

Stale se mi nedari neco najit nejaky rozumny postup.
  
Diky za napady
--
S pozdravem,
 Martin


Odpovedá: Fitz Ladislav

7. 7. 2004 8:11

podivej se na CreateFontIndirect


Odpovedá: Martin Radvansky

7. 7. 2004 9:17

Dobry den,

FL> podivej se na CreateFontIndirect
No prave, cestou CreateFont nebo CreateFontIndirec jsem sel, ale
ackoliv je ve strukture LOGFON je Height i Width, tak mi to nereaguje na
zmenu na zmenu Width. Pokud zadam Height tak se mi meni cely font v obou
smerech.
Pokud zadam cokoliv do sirky Width tak se na to nebere potaz, netusim
proc  


--
S pozdravem,
 Martin



Odpovedá: Fitz Ladislav

7. 7. 2004 9:07

to by ale melo fungovat muzes poslat kousek kodu


>> podivej se na CreateFontIndirect
> No prave, cestou CreateFont nebo CreateFontIndirec jsem sel, ale
> ackoliv je ve strukture LOGFON je Height i Width, tak mi to nereaguje
> na
> zmenu na zmenu Width. Pokud zadam Height tak se mi meni cely font v
> obou smerech. Pokud zadam cokoliv do sirky Width tak se na to nebere
> potaz, netusim
> proc  


Odpovedá: Martin Radvansky

7. 7. 2004 10:05

Dobry den,

FL> to by ale melo fungovat muzes poslat kousek kodu

fHFont:=CreateFont(-25, 10, 0, 0,
                  FW_NORMAL, 0, 0, 0,
                  ANSI_CHARSET, OUT_DEFAULT_PRECIS,
                  CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
                  DEFAULT_PITCH or FF_MODERN,'Courier New');
                  
Printer.Canvas.Font.Handle:=fHFont;
Printer.Canvas.Refresh;
Printer.BeginDoc;
Canvas.TextOut(100,100,'Testovaci text');
Printer.EndDoc;

Na ten druhy parametr to proste nereaguje sirka je umerna prvnimu
parametru.
Pokud pouziju misto CreateFont CreateFontIndirect tak je vysledek
stejny. Samozrejme naplnim strukturu LOGFONT

--
S pozdravem,
 Martin


Odpovedá: Fitz Ladislav

7. 7. 2004 10:44

zkus dat prvne BeginDoc a pak teprve nastavovat font (me to alespon ted tak
fungovalo)

> fHFont:=CreateFont(-25, 10, 0, 0,
> FW_NORMAL, 0, 0, 0,
> ANSI_CHARSET, OUT_DEFAULT_PRECIS,
> CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
> DEFAULT_PITCH or FF_MODERN,'Courier New');
>
> Printer.Canvas.Font.Handle:=fHFont;
> Printer.Canvas.Refresh;
> Printer.BeginDoc;
> Canvas.TextOut(100,100,'Testovaci text');
> Printer.EndDoc;